<?php

class DoanKiemTraController extends BaseController {

    private $doankt;

    //Ham xay dung
    function __construct() {
        $this->doankt = new DoanKiemTra();
    }

    //Phuong thuc hien ds thong tin
    public function index() {
        $appendlinks = array();
        $key = (Input::has('key')) ? $appendlinks['key'] = ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get('key')))) : null;

            $data = $this->doankt->GetList($key);
            $data->appends($appendlinks)->links();

            $currentPage = (Input::has('page')) ? (Input::get("page") > 1) ? Input::get("page") : 1 : 1;
            $numRows = ($currentPage - 1) * $this->doankt->GETDKT();
            
            $mau = new Don();
            $dons = $mau->GetList(null);

            return View::make('qldoankt.index')
                            ->with("key", $key)
                            ->with("numRows", $numRows)
                            ->with("data", $data)
                            ->with('dons', $dons)
                            ->with("title", "Danh sách đoàn kiểm tra");
    }

    //Phuong thuc hien khung them thong tin
    public function add() {
        return View::make('qldoankt.add')
                        ->with("title", "Thêm đoàn kiểm tra");
    }
    
    //Phuong thuc hien khung them thanh vien
    public function addMemBer() {
        $key = null;
        $canbo = new CanBo();
        $cb = $canbo->GetList($key);
        
        $chucvu = new ChucVu();
        $cv = $chucvu->GetList($key);
        
        $chucdanh = new ChucDanh();
        $cd = $chucdanh->GetList($key);
        
        return View::make('qldoankt.form_mem')
                        ->with("macbs", $cb)
                        ->with("cvs", $cv)
                        ->with("cds", $cd)
                        ->with("iddkt", Input::get('iddkt'))
                        ->with("title", "Thêm thành viên đoàn kiểm tra");
    }

    //Phuong thuc xu ly luu thong tin moi
    public function save() {
        try {
                $data = array(
                    "MA_DOAN_TT" => Input::get("madkt"),
                    "TEN_DOAN_TT" => trim(Input::get("tendkt"))
                );
                if ($this->doankt->SaveIn($data)) {
                    return Redirect::to('ql=dsdoankt')
                                    ->with("success", "Thêm đoàn kiểm tra thành công!");
                }
                return Redirect::back()
                                ->with("error", "Thêm thất bại do mã kiểm tra đã tồn tại!");
        } catch (Exception $ex) {
            return Redirect::back()
                            ->withInput()
                            ->with("error", "Thêm thất bại do dữ liệu không hợp lệ!");
        }
    }

    //Phuong thuc hien khung sua thong tin xac dinh
    public function edit() {
        if (Input::has('id')) {
            $id = Input::get('id');
            if (is_numeric($id)) {
                $row = $this->doankt->GetOne($id);
                $stt = 0;
                
                return View::make('qldoankt.view')
                                ->with("stt", $stt)
                                ->with("row", $row)
                                ->with("title", "Xem thông tin chi tiết đoàn kiểm tra");
            }
        }
        return $this->index();
    }
    
    //phuong thuc chinh sua thong tin can bo tham gia kiểm tra
    public function editMemBer() {
        if (Input::has('idct')) {
            $id = Input::get('idct');
            if (is_numeric($id)) {
                $row = $this->doankt->getOneCT($id);
                $stt = 0;
                $key = null;
                $canbo = new CanBo();
                $cb = $canbo->GetList($key);

                $chucvu = new ChucVu();
                $cv = $chucvu->GetList($key);

                $chucdanh = new ChucDanh();
                $cd = $chucdanh->GetList($key);
                
                return View::make('qldoankt.view_tv')
                                ->with("stt", $stt)
                                ->with("row", $row)
                                ->with("macbs", $cb)
                                ->with("cvs", $cv)
                                ->with("cds", $cd)
                                ->with("title", "Xem thông tin chi tiết đoàn kiểm tra");
            }
        }
        return $this->index();
    }

    //Phuong thuc xu ly luu thong tin da sua
    public function store() {
        $id = Input::get("id");
        $data = array(
            "MA_DOAN_TT" => Input::get("madkt"),
            "TEN_DOAN_TT" => trim(Input::get("tendkt")),
            "SO_TV_TG" => Input::get("sotv")
        );
        if ($this->doankt->validation(Input::all())) {
            if ($this->doankt->StoreIn($data, $id)) {
                return Redirect::to('ql=dsdoankt')
                    ->with("success", "Chỉnh sửa đoàn kiểm tra hoàn tất!");
            }
            return Redirect::back()
                    ->with("error", "Sửa thất bại do mã số đoàn kiểm tra đã tồn tại!");
        }
        return Redirect::back()
            ->with("error", "Sửa thất bại do dữ liệu không phù hợp!");
    }

    //Phuong thuc xoa mot thong tin nao do
    public function remove() {
        if (Input::has("id")) {
            $id = Input::get("id");
            if (is_numeric($id)) {
                if ($this->doankt->Remove($id)) {
//                    $appendlinks = array();
//                    $key = (Input::has('key')) ? $appendlinks['key'] = ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get('key')))) : null;
//
//                    try {
//                        $data = $this->doankt->GetList($key);
//                        $data[0]->MA_DOAN_TT; //Bẫy lỗi
//                    } catch (Exception $ex) {
//                        $url = url("ql=dsdoankt");
//                        $currentPage = (Input::has('page')) ? (Input::get("page") > 1) ? Input::get("page") : 1 : 1;
//                        Input::merge(array('page' => ( --$currentPage == 0) ? 1 : $currentPage));
//
//                        $data = $this->doankt->GetList($key);
//                        $data->setBaseUrl('ql=dsdoankt');
//                        $data->appends($appendlinks)->links();
//
//                        $numRows = ($currentPage - 1) * $this->doankt->GetDTT();
//                        $url = $url . "?page=" . $currentPage . (($key != null) ? "&key=" . $key : "");
//                        return View::make('qldoankt.index')
//                                        ->with("key", $key)
//                                        ->with("numRows", $numRows)
//                                        ->with("data", $data)
//                                        ->with("url", $url)
//                                        ->with("warning", "Xóa đoàn kiểm tra hoàn tất!<br/>Cảnh báo: không khuyến khích việc xóa dữ liệu này.")
//                                        ->with("title", "Danh sách đoàn kiểm tra");
//                    }
                    return Redirect::back()
                                    ->with("warning", "Xóa đoàn kiểm tra hoàn tất!<br/>Cảnh báo: không khuyến khích việc xóa dữ liệu này.");
                }
                return Redirect::back()
                                ->with("error", "Xóa đoàn kiểm tra thất bại!");
            }
        }
        return Redirect::back()
                        ->with("error", "Không thể xóa do không có đoàn này trong CSDL!");
    }
    

    //Phuong thuc tim kiem thong tin xac dinh theo thuc post
    public function search() {
        if (Request::ajax()) {
            $mdkt = Input::get('mdkt');
            try {
                $data = $this->doankt->GetOneWithMD($mdkt);
                if($data != null) {
                    $td = DB::table('vctdoantt')->where('MA_DOAN_TT', $mdkt)->where('MA_CD', 'TD')->first();
                    return $td->HO_TEN;
                } return null;
            } catch (Exception $ex) {
                return null;
            }
        }
    }

}
